mietzekotze0815
Goto Top

Probleme mit DFSR-Membership und Powershell Invoke-Command

Hallo zusammen,

ich bin an einem Skript dran, welches Fileshares auf 2 Servern anlegt, danach DFS-N aktiviert und am Ende die DFS-R aktivieren soll zwischen den beiden Shares.
Wir haben eine Tiered-User Umgebung. D.h. das z.B. ein User in Tier 0 sich nur an den AD Controllern anmelden darf und nicht an Memberserver und ein Tier 1 User darf sich nur an den Memberservern anmelden, jedoch nicht an einem AD Controller. Es ist also gewünscht, dass sich der T0 z.B. an allen Servern anmelden darf. Zusätzlich haben wir mehrere Domains für z.B. die Infrastruktur, die Kundenservices und die User. Zwischen allen Domains besteht ein bidirektionaler Trust.

Das Skript wird auf einem AD Controller ausgeführt, da im Verlauf mehrere AD Gruppen in unterschiedlichen Domains angelegt werden müssen. Hierzu wird ein Konto benötigt, welche Zugriff auf das AD hat.

Es gibt jedoch auch Operationen die im Kontext eines T1 Users auf den Fileserver ausgeführt werden müssen. Dafür wird die Operation mit Invoke-Command auf den beiden Fileserver ausgeführt.

Das Skript ist fast komplett funktionsfähig leider hänge ich nun an genau einer Codezeile fest und ich habe keine Idee mehr, wie ich hier weiterkomme.

Ich poste mal die relevanten Teile des Codes. Beachtet dass, in der Variable $creds die T1 Credentials gespeichert sind und das Skript im T0 Kontext gestartet wird.

# Setup DFS-R Replication 
    New-DfsReplicationGroup -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -domainname $SvcDomain_FQDN
    Add-DfsrMember -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -domainname $SvcDomain_FQDN $fileserver1
    Add-DfsrMember -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -domainname $SvcDomain_FQDN $fileserver2
    New-DfsReplicatedFolder -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -FolderName $foldername -domain $SvcDomain_FQDN -DfsnPath \\$SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername
    Invoke-Command -computername $fileserver1 -Credential $creds -scriptblock {
        param($SvcDomain_FQDN,$DFSNRootFolder,$dfsnfolder,$foldername,$fileserver1,$target_local)
        Set-DfsrMembership -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -Foldername $foldername -ComputerName $fileserver1 -ContentPath $target_local -PrimaryMember $true -DomainName $SvcDomain_FQDN -force
    } -ArgumentList $SvcDomain_FQDN,$DFSNRootFolder,$dfsnfolder,$foldername,$fileserver1,$target_local
    Invoke-Command -computername $fileserver1 -Credential $creds -scriptblock {
        param($SvcDomain_FQDN,$DFSNRootFolder,$dfsnfolder,$foldername,$fileserver2,$target_local)
        Set-DfsrMembership -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -Foldername $foldername -ComputerName $fileserver2 -ContentPath $target_local -PrimaryMember $false -DomainName $SvcDomain_FQDN -force
    } -ArgumentList $SvcDomain_FQDN,$DFSNRootFolder,$dfsnfolder,$foldername,$fileserver2,$target_local
    Add-DfsrConnection -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -domainname $SvcDomain_FQDN -SourceComputerName $fileserver1 -DestinationComputerName $fileserver2

Wenn ich den Code nun ausführe wirft es mir folgenden Fehler:

Set-DfsrMembership : Could not edit the DFSR membership with domain: <DOMAIN>; replication group: <REPLICATION GROUP>; replicated folder: <FOLDER>; computer: <COMPUTER>; GUID: None specified. An operation error occurred. + CategoryInfo : NotSpecified: (DFSR membership...None specified.:String) [Set-DfsrMembership], DfsrException + FullyQualifiedErrorId : Set-DfsrMembership.OMException,Microsoft.DistributedFileSystemReplication.Commands.SetDfsrMembershipCommand 

Ich erhalte den Fehler sogar dann, wenn ich den Invoke-Command

    Invoke-Command -computername $fileserver1 -Credential $creds -scriptblock {
        param($SvcDomain_FQDN,$DFSNRootFolder,$dfsnfolder,$foldername,$fileserver2,$target_local)
        Set-DfsrMembership -GroupName $SvcDomain_FQDN\$DFSNRootFolder\$dfsnfolder\$foldername -Foldername $foldername -ComputerName $fileserver2 -ContentPath $target_local -PrimaryMember $false -DomainName $SvcDomain_FQDN -force
    } -ArgumentList $SvcDomain_FQDN,$DFSNRootFolder,$dfsnfolder,$foldername,$fileserver2,$target_local

selbst auf dem Fileserver ausführe.

Wenn ich das Skript auf dem AD Controller ausführe (ohne Invoke-Command) erhalte ich einen Access Denied Fehler:

Set-DfsrMembership : Security cannot be set on the replicated folder. Access is denied At line:1 char:1 + Set-DfsrMembership -GroupName <GROUPNAME> ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (DFSR membership...None specified.:String) [Set-DfsrMembership], DfsrException + FullyQualifiedErrorId : DfsrCore.ThrowIfInconsistent,Microsoft.DistributedFileSystemReplication.Commands.SetDfsrMembershipCommand 

Es funktioniert jedoch, wenn ich den Set-DFSRMembership Command auf dem Fileserver lokal ausführe. Dabei spielt es auch keine Rolle ob die Powershell elevated läuft oder nicht.

Ab diesem Zeitpunkt (wo der Befehl einmal fehlerfrei lief auf dem Fileserver), kann ich den Befehl auch lokal auf dem AD Controller ausführen und Einstellungen setzen.

Ich habe momentan leider keine Idee mehr was zu tun ist. In den Eventlogs steht auch nichts drin. Hat irgendjemand so einen Fall schon mal gehabt und hat eine Idee?

Vielen Dank an alle

Grüße
Michael

Content-Key: 12756947111

Url: https://administrator.de/contentid/12756947111

Printed on: June 2, 2024 at 00:06 o'clock

Member: mietzekotze0815
mietzekotze0815 Nov 24, 2023 at 06:34:50 (UTC)
Goto Top
Niemand ne Idee face-sad?